為什麼要特別把ARP拉出來講呢?因為目前網路中大部分的監聽和欺騙技術都是源於這個協定。ARP的主要原因是乙太網中使用的裝置交換機並不能識別IP位址,而只能識別硬體位址。當交換機收到了一個發往特定硬體位址的資料封包的時候,就首先查閱資料表中是否有對應的紀錄,如果有就將資料封包發往這個通訊埠。
既然軟體中使用的都是IP位址,而交換機使用的卻是硬體位址,那麼這個過程中一定發生了一個IP位址和硬體位址的轉換,而這個轉換是在什麼時候發生的呢?
這個轉換發生在軟體將資料封包交給交換機之前,在每一台支援ARP的主機中都有一個ARP表。
ARP表
- 在Kali Linux 2中的ARP表
- 在Windows作業系統中的ARP表
舉例來說,如果要和224.0.0.2通訊,就首先查閱資料表項,當找到這一項後,就會將這個資料封包增加這個硬體位址01-00-5e-00-00-02。交給交換機之後,就可以由他發送到目的地了。如果需要和224.0.0.1通訊,首先查閱資料表項,但找不到對應的紀錄,所以此時不知道主機224.0.0.1的實體位址,這時就需要使用ARP了。主機先發出一個ARP請求,這個請求資料封包是以廣播的形式發送替往段中的所有裝置的,不過只有目標主機會列出回應,目標主機的回應包大概的意思是:「我是那個邏輯位址為192.168.1.2的主機,我的實體位址是:XX-XX-XX-XX-XX-XX」,解析過程完成後,就會將這個紀錄增加至ARP表中。
今天的ARP原理就到這邊,明天會學習駭客所使用的拒絕服務攻擊。